﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Константы - Макросы</title>
<meta http-equiv="Content-Type" Content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../styles/styles.css">
<script language="javascript" src="../../links.js" type="text/javascript"></script>
</head>
<body>

<h1>Константы</h1>
<div class="navbar">
<a href="../../index.html">главная</a> |
<a href="../index.html">Макросы</a> |
<a href="index.html">Макроязык</a>
</div>

<div class="shortdescr">
Константы позволяют задавать имена значениям и обращаться к ним позже.
</div>

<h3>Именование</h3>
<div class="descr">
<p>Имена константам можно задавать произвольные, но при этом соблюдать следующие правила:</p>
<ol>
  <li>Имя начинается с буквы латинского алфавита, дальше в произвольном порядке идут буквы латинского алфавита, цифры и символ '_'.</li>
  <li>Имена констант не должны совпадать с названиями клавиш и именами предопределённых <a href="prop_func/index.html">свойств и макрофункций</a>.</li>
</ol>

</div>

<h3>Типы</h3>
<div class="descr">
<p>Константы могут быть трех типов - целое число, вещественное (разделитель целой и дробной частей - точка) или строка.</p>
<p>Целочисленные константы: <code><var>NNN</var></code> - 10-ричная константа, <code>0<var>NNN</var></code> - 8-ричная константа, <code>0x<var>NNN</var></code> - 16-ричная константа.</p>
<p>Целочисленные константы 64-разрядные.</p>
<p>Константы с плавающей точкой - двойной точности 64-разрядные (double).</p>
</div>

<h3>Область действия</h3>
<div class="descr">
<p>При старте FAR считывает константы из базы macros.db (таблица constants).</p>
</div>

<h3>Представление в базе</h3>
<div class="descr">
<p>В базе константы располагаются в таблице  <code>constants</code>.</p>
<p>Каждая константа имеет имя, значение и тип. Значение в базе всегда хранится в виде текста. Поле type уточняет тип содержимого в поле value:</p>
<ul>
  <li><code>text</code> - строковые константы</li>
  <li><code>real</code> - константы с плавающей точкой</li>
  <li><code>integer</code> - целочисленные константы</li>
</ul>
<p>Преобразование чисел с плавающей точкой в строку осуществляется по формату "<code>KeyMacros/CONVFMT</code>". По умолчанию "<code>%.6g</code>"</p>
</div>

<h3>Пример</h3>
<div class="descr">
Пример описания вещественной константы PI и применения константы FIB_PASSWORD (0x00000002) для функции <a href="prop_func/general.html#prompt">prompt()</a>.
<pre class="codesample">
&lt;constants&gt;
  &lt;constant name="FIB_PASSWORD", value="0x00000002", type="integer"/&gt;
  &lt;constant name="PI" value="3.14159265358979323846" type="real"/&gt;
&lt;/constants&gt;

&lt;keymacros&gt;
  &lt;macro area="Editor" key="CtrlP" flags="DisableOutput">
    %s=prompt("Password","Input password:",FIB_PASSWORD);
    $Text %s
  &lt;/macro&gt;
&lt;/keymacros&gt;
</code></pre>
</div>

<div class="see">Смотрите также:</div><div class="seecont">
<a href="vars.html">Переменные</a>
</div>

</body>

</html>
